Computers are used in many applications. As computing systems continue to evolve, the graphical display requirements of the systems become more demanding. This is especially true in applications where detailed graphical displays must be updated quickly. One example of such an application is a computer game where movement and modification of background images may place great demands on the processing power of the computing, system.
In order to achieve color in a video graphics system, digital values for red, green, and blue (RGB values) are provided to an analog to digital (A/D) converter which provides the analog signal that gives each pixel of the display its characteristic color. In a typical system, eight bits are used for each of the RGB colors. Thus, with eight bits required for each of the RGB colors, a total of 24 bits is required for each pixel. The various combinations of these 24 bits of RGB data allow for 2.sup.24 or nearly 17 million colors.
In order to conserve memory and improve efficiency, palettes are often created which contain a reduced number of colors that can be selected with an index that consists of a smaller number of bits. These palettes are typically implemented with a lookup table. For example, a 256-color lookup table would allow for each of the 256 colors to be selected with an eight-bit index. Each color within the lookup table would include an eight-bit value for each of the RGB colors.
Some applications utilize the color lookup table in ways that allow for flexibility in displaying images. These applications often load many different palettes into the lookup table while drawing to a single frame for display. The draw commands in the system are interspersed with changes in the palettes. In other words, a number of draw commands may be executed that use a first palette, and then a new palette may be loaded for a second set of draw commands. In order to avoid corrupting these drawing operations, the processor may be forced to wait for some of these commands to be executed by a graphics processor that is part of the system. When the processor is forced to wait for the graphics processor to complete a command or palette load, the efficiency of the system is compromised. Delays experienced by the processor translate into overall slowdowns in the execution of the program.
Consequently, a need exists for a system that allows the processor to transfer drawing commands and palette changes to the graphics processor in a faster, more efficient manner.